package com.xiezc;

import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;

import lombok.extern.slf4j.Slf4j;

/**
 * @author wb-xzc291800
 * @date 2018/08/24 13:50
 */
@Slf4j
public class Xutil {

    public static Snowflake snowflake = new Snowflake(1000);
    /**
     * 表示设备自身的 设备ID. 在XSync初始化的时候会赋值真实值
     */
    public static long selfDeviceId = 0;

    /**
     * 设备超时发送心跳的时间, 单位毫秒
     */
    public static long outTime = 2000;
    /**
     * 包头部长度
     */
    public static int headLen = 57;
    /**
     * 包内容的长度. 可能会超出, 如果是文件包, 最后一个包的内容还要包含文件名, 所以可能会超出长度
     */
    public static int packetLen = 800;
    /**
     * 超时重发的时间 , 也是超时重发定时任务线程的定时的1/2时间
     */
    public static int waitMillSecond=2000;
    /**
     * 重发的次数
     */
    public static int maxSendCount=6;

    public static Random random = new Random();
    static MessageDigest md5;

    public static Charset charset = Charset.forName("utf8");

    static {
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            log.error(e.getMessage(), e);
        }
    }

    public synchronized static byte[] md5(byte[] cont) {
        return md5.digest(cont);
    }

}
